Add Agent#short_type.

Akinori MUSHA 10 years ago
parent
commit
4be27d53c7
3 changed files with 13 additions and 1 deletions
  1. 4 0
      app/models/agent.rb
  2. 2 1
      app/models/agents/event_formatting_agent.rb
  3. 7 0
      spec/models/agent_spec.rb

+ 4 - 0
app/models/agent.rb

@@ -66,6 +66,10 @@ class Agent < ActiveRecord::Base
66 66
     where(:type => type)
67 67
   }
68 68
 
69
+  def short_type
70
+    type.demodulize
71
+  end
72
+
69 73
   def check
70 74
     # Implement me in your subclass of Agent.
71 75
   end

+ 2 - 1
app/models/agents/event_formatting_agent.rb

@@ -104,11 +104,12 @@ module Agents
104 104
 
105 105
     def receive(incoming_events)
106 106
       incoming_events.each do |event|
107
+        agent = Agent.find(event.agent_id)
107 108
         payload = perform_matching(event.payload)
108 109
         opts = interpolated(payload)
109 110
         formatted_event = opts['mode'].to_s == "merge" ? event.payload.dup : {}
110 111
         formatted_event.merge! opts['instructions']
111
-        formatted_event['agent'] = Agent.find(event.agent_id).type.slice!(8..-1) unless opts['skip_agent'].to_s == "true"
112
+        formatted_event['agent'] = agent.short_type unless opts['skip_agent'].to_s == "true"
112 113
         formatted_event['created_at'] = event.created_at unless opts['skip_created_at'].to_s == "true"
113 114
         create_event :payload => formatted_event
114 115
       end

+ 7 - 0
spec/models/agent_spec.rb

@@ -132,6 +132,13 @@ describe Agent do
132 132
       it_behaves_like HasGuid
133 133
     end
134 134
 
135
+    describe ".short_type" do
136
+      it "returns a short name without 'Agents::'" do
137
+        Agents::SomethingSource.new.short_type.should == "SomethingSource"
138
+        Agents::CannotBeScheduled.new.short_type.should == "CannotBeScheduled"
139
+      end
140
+    end
141
+
135 142
     describe ".default_schedule" do
136 143
       it "stores the default on the class" do
137 144
         Agents::SomethingSource.default_schedule.should == "2pm"